/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ReglasNegocio;
import AccesoDatos.*;
/**
 *
 * @author dani
 */
public class Finca extends ObjReglaNegocioBase {

    private String id;
    private String nombre;
    private String direccion;
    private double manzanas;
    private Mandador mandador;
    
    public Finca(Dato id) {
        super(id);
        this.id=this.getDato(0).getValor();
    }
    
    public Finca() {
        super();
    }
    
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
    
    @Override
    public String toString() {
        return this.nombre;
    }
    
    public String getNombre() {
        return this.nombre;
    }
    
    public void setNombre(String nombre) {
        this.nombre=nombre;
    }
    
    public String getDireccion() {
        return this.direccion;
    }
    
    public void setDireccion(String direccion) {
        this.direccion=direccion;
    }
    
    public double getManzanas() {
        return this.manzanas;
    }
    
    public void setManzanas(double manzanas) {
        this.manzanas=manzanas;
    }
    
    public Mandador getMandador() {
        return this.mandador;
    }
    
    public void setMandador(Mandador mandador) {
        this.mandador=mandador;
    }
    
    @Override
    protected Boolean asignarCampos() {
        String sql="select * from finca";
        sql+=" where "+this.getDato(0).getNombre()+"='"+this.getDato(0).getValor()+"'";
        
        Vista v=this.conn.crearVista(sql);
        if (v.getNRegistros()>0) {
            this.nombre=(String) v.getRegistro(0, 1);
            this.direccion=(String) v.getRegistro(0, 2);            
            this.manzanas=(Double) v.getRegistro(0, 3);

            long valor=(Long) v.getRegistro(0, 4);
            Dato idMandador=new Dato("id",String.valueOf(valor));
            Mandador m=new Mandador(idMandador);
            this.mandador=null;
            this.mandador=m;
            return true;
        }
        else
            return false;
        
        
    }
    
    @Override
    public int Crear() {
        Dato[] campos=new Dato[4];
        campos[0]=new Dato("nombre",this.nombre);
        campos[1]=new Dato("direccion", this.direccion);
        campos[2]=new Dato("manzanas",String.valueOf(this.manzanas));
        campos[3]=new Dato("fkmandador",this.mandador.getId());
        
        return this.conn.Agregar(campos, "finca");
    }
    
    @Override
    public void Actualizar() {
        String sql="update finca";
        sql+=" set ";
        sql+="nombre='"+this.nombre+"',";
        sql+="direccion='"+this.direccion+"',";
        sql+="manzanas='"+this.manzanas+"',";
        sql+="fkmandador='"+this.mandador.getId()+"' ";
        sql+=" where id='"+this.getId()+"'";
        
        this.conn.ejecutarActualizacion(sql);
        this.asignarCampos();
    }
            
}
